# 字典的定义,键值对，key是字符型数据，value是任意类型的数据
alien = {'color': 'green', 'point': 5}
# 1. 访问字典中的值,通过键来访问
print(alien['color'])
# 2. 添加键值对
alien['name'] = 'eda'
alien['x_position'] = 0
alien['y_position'] = 25
print(alien)
# 3. 修改字典中的值
alien['color'] = 'yellow'
print(alien)
# 4. 删除一对键值对,通过键来索引
del alien['name']
print(alien)
# 5. 可以使用dict来存储众多对象的同一种属性，或者一个对象的不同属性

# 6. 遍历字典
users = {'username': "Jiang",
         'first': 'enrico',
         'last': 'fermi',
         }
# 方法items()返回关于键值对的一个列表
print('-----遍历列表中的键值对------')
for key, value in users.items():
    print('\nkey:' + key)
    print('value:' + value)
# 使用方法keys()遍历字典中的所有键,遍历字典时会默认遍历字典中的所有键
print('-----遍历列表中的值------')
for name in users.keys():
    print(name)
# 使用sorted()方法对键进行排序按顺序遍历
print('-----按顺序遍历列表中的值------')
for name in sorted(users.keys()):
    print(name)
# 使用value()方法遍历字典中的值
print('-----遍历列表中的值------')
languages = {
    'jens': 'python',
    'sarah': 'c',
    'edward': 'c++',
    'phil': 'python',
}
for language in languages.values():
    print(language.title())
# 使用set()方法去除列表中的重复元素
print("-------去除重复元素--------")
for language in set(languages.values()):
    print(language.title())
# 字典列表
alien_0 = {'color': 'green', 'point': 5}
alien_1 = {'color': 'red', 'point': 3}
alien_2 = {'color': 'yellow', 'point': 1}
aliens = [alien_0, alien_1, alien_2]
print('------包含三个元素的字典列表-------')
for alien in aliens:
    print(alien)
# 创建30个绿色的外星人
print('-------包含30个元素的字典列表-------')
aliens = []
for alien_number in range(30):
    new_alien = {'color': 'green', 'point': 5}
    aliens.append(new_alien)
for alien in aliens[:5]:
    print(alien)
print('Total number of aliens: ' + str(len(aliens)))
# 在字典中存储列表
pizza = {
    'crust': 'thick',
    'toppings': ['mushrooms', 'extra cheese'],
}
print('You ordered a ' + pizza['crust'] + '-cust pizza' +
      'with the following topping:')
for topping in pizza['toppings']:
    print(topping)
print('\n-------同学们喜欢的语言都有那些------')
favorite_language = {
    'jen': ['python', 'c'],
    'sarah': ['c'],
    'edward': ['ruby', 'go'],
    'phil': ['python', 'haskell'],
}
for name, languages in favorite_language.items():
    print('\n' + name.title() + "'s favorite languages are: ")
    for language in languages:
        print(language)
# 在字典中存储字典
users = {
    'aeinstein': {
        'first': 'albert',
        'last': 'einstein',
        'location': 'princeton',
    },
    'mcurie': {
        'first': 'marie',
        'last': 'curie',
        'location': 'paris',
    },

}
for user_name, user_info in users.items():
    print('\n Username: ' + user_name)
    full_name = user_info['first'] + ' ' + user_info['last']
    print('\tFull name: ' + full_name.title())
    print('\tLocation: ' + user_info['location'].title())
